#ifndef BOTTOMSTATUSWIDGET_H
#define BOTTOMSTATUSWIDGET_H

#include <QWidget>
#include <QHBoxLayout>
#include <QLabel>
#include <QSpinBox>
#include <QButtonGroup>
#include <QCheckBox>

class BottomStatusWidget : public QWidget
{
    Q_OBJECT

public:
    explicit BottomStatusWidget(QWidget *parent = nullptr);
    ~BottomStatusWidget();

    // 设置通道选择按钮组
    // 参数: channels - 通道名称列表
    void setChannelButtons(const QStringList &channels);

    // 更新状态图标（如静音、全屏等）
    // 参数: mute - 是否静音
    // 参数: fullScreen - 是否全屏
    // 参数: alarm - 是否有警报
    void updateStatusIcons(bool mute, bool fullScreen, bool alarm);

    // 获取当前静音状态
    // 返回: 是否静音
    bool isMuted() const;

    // 获取当前全屏状态
    // 返回: 是否全屏
    bool isFullScreen() const;

    // 获取当前警报状态
    // 返回: 是否有警报
    bool hasAlarm() const;

    // 设置当前通道
    // 参数: channelId - 通道ID
    void setCurrentChannel(const QString &channelId);

    // 获取当前通道
    // 返回: 当前通道ID
    QString getCurrentChannel() const;

private:
    QButtonGroup *channelButtonGroup;
    QCheckBox *muteCheckBox;
    QCheckBox *fullScreenCheckBox;
    QCheckBox *alarmCheckBox;

    QHBoxLayout *layout;



private slots:
    // 通道按钮被点击
    // 参数: id - 被点击的按钮ID
    void onChannelButtonClicked(int id);

    // 静音状态切换
    // 参数: checked - 是否静音
    void onMuteToggled(bool checked);

    // 全屏状态切换
    // 参数: checked - 是否全屏
    void onFullScreenToggled(bool checked);

signals:
    // 通知主窗口：通道切换
    // 参数: channelId - 通道ID
    void channelSelected(const QString &channelId);

    // 通知主窗口：静音状态改变
    // 参数: muted - 是否静音
    void muteStateChanged(bool muted);

    // 通知主窗口：全屏状态改变
    // 参数: fullscreen - 是否全屏
    void fullScreenStateChanged(bool fullscreen);
};

#endif // BOTTOMSTATUSWIDGET_H
